package com.ptr.ptrsystem.dao;

/**
 *
 * @author pavel
 */
import com.ptr.controladores.conexionsqlserver;
import java.sql.*;

public class Insertar {

    public Insertar() {
    }
    String query = null;
    Connection conn = null;
    CallableStatement st;
    conexionsqlserver base = new conexionsqlserver();
    PreparedStatement ps=null;

    public boolean InsertaEstado(String COD_ESTADO, String NOM_ESTADO) {
        boolean valor = false;
        try {
            base.conectar();
            conn = base.getconection();
            st = conn.prepareCall("{call sp_InsertaEstado(?,?)}");
            st.setString(1, COD_ESTADO.toUpperCase());
            st.setString(2, NOM_ESTADO.toUpperCase());
            int fila = st.executeUpdate();
            if (fila >= 1) {
                valor = true;
            }
            st.close();
            conn.close();
            base.cerrarBD();
        } catch (SQLException err) {
            System.out.println("Error al registrar el estado(*" + err.getMessage() + "*)");
        }
        return valor;
    }

    public boolean InsertaTipoVinculo(String COD_VINCULO, String NOM_VINCULO, String DET_VINCULO) {
        boolean vinculo = false;
        try {
            base.conectar();
            conn = base.getconection();
            st = conn.prepareCall("{call SP_AGREGAVINCULO(?,?,?)}");
            st.setString(1, COD_VINCULO.toUpperCase());
            st.setString(2, NOM_VINCULO.toUpperCase());
            st.setString(3, DET_VINCULO.toUpperCase());
            int vin = st.executeUpdate();
            if (vin >= 1) {
                vinculo = true;
            }
            st.close();
            conn.close();
            base.cerrarBD();
        } catch (SQLException v) {
            System.err.println("Error al registrar Vinculo(*" + v.getMessage() + "*)");
        }
        return vinculo;
    }

    public boolean InsertaTipoDocumento(String COD_T_DOC, String NOM_T_DOC) {
        boolean tdoc = false;
        try {
            base.conectar();
            conn = base.getconection();
            st = conn.prepareCall("{call SP_AGREGATIPODOCUMENTO(?,?)}");
            st.setString(1, COD_T_DOC.toUpperCase());
            st.setString(2, NOM_T_DOC.toUpperCase());
            int vin = st.executeUpdate();
            if (vin >= 1) {
                tdoc = true;
            }
            st.close();
            conn.close();
            base.cerrarBD();
        } catch (SQLException v) {
            System.err.println("Error al registrar Vinculo(*" + v.getMessage() + "*)");
        }
        return tdoc;
    }

    public boolean InsertaTipoNacionalidad(String COD_NACIONALIDAD, String NOM_NACIONALIDAD) {
        boolean nacionalidad = false;
        try {
            base.conectar();
            conn = base.getconection();
            st = conn.prepareCall("{call SP_AGREGATNACIONALIDAD(?,?)}");
            st.setString(1, COD_NACIONALIDAD.toUpperCase());
            st.setString(2, NOM_NACIONALIDAD.toUpperCase());
            int nac = st.executeUpdate();
            if (nac >= 1) {
                nacionalidad = true;
            }
            st.close();
            conn.close();
            base.cerrarBD();
        } catch (SQLException v) {
            System.err.println("Error al registrar Nacionalidad(*" + v.getMessage() + "*)");
        }
        return nacionalidad;
    }

    public boolean InsertaCargo(String COD_CARGO, String NOM_CARGO) {
        boolean cargo = false;
        try {
            base.conectar();
            conn = base.getconection();
            st = conn.prepareCall("{call SP_AGREGATIPOCARGO(?,?)}");
            st.setString(1, COD_CARGO.toUpperCase());
            st.setString(2, NOM_CARGO.toUpperCase());
            int nac = st.executeUpdate();
            if (nac >= 1) {
                cargo = true;
            }
            st.close();
            conn.close();
            base.cerrarBD();
        } catch (SQLException v) {
            System.err.println("Error al registrar Cargo(*" + v.getMessage() + "*)");
        }
        return cargo;
    }

    public boolean InsertaTipoDireccion(String COD_DIR, String NOM_TIPO_DIR) {
        boolean tdir = false;
        try {
            base.conectar();
            conn = base.getconection();
            st = conn.prepareCall("{call SP_AGREGATIPODIRECCION(?,?)}");
            st.setString(1, COD_DIR.toUpperCase());
            st.setString(2, NOM_TIPO_DIR.toUpperCase());
            int nac = st.executeUpdate();
            if (nac >= 1) {
                tdir = true;
            }
            st.close();
            conn.close();
            base.cerrarBD();
        } catch (SQLException v) {
            System.err.println("Error al registrar Tipo de Documento(*" + v.getMessage() + "*)");
        }
        return tdir;
    }

    public boolean InsertaTipoEstadoPersona(String COD_ESTADO_PERS, String NOM_ESTADO_PERS) {
        boolean tepers = false;
        try {
            base.conectar();
            conn = base.getconection();
            st = conn.prepareCall("{call SP_AGREGATIPOESTADPERSONA(?,?)}");
            st.setString(1, COD_ESTADO_PERS.toUpperCase());
            st.setString(2, NOM_ESTADO_PERS.toUpperCase());
            int nac = st.executeUpdate();
            if (nac >= 1) {
                tepers = true;
            }
            st.close();
            conn.close();
            base.cerrarBD();
        } catch (SQLException v) {
            System.err.println("Error al registrar Estado Persona(*" + v.getMessage() + "*)");
        }
        return tepers;
    }

    public boolean InsertaUbigeo(String IDUBIGEO, String IDUBIGEODEP,
            String IDUBIGEOPROV, String IDUBIGEODIST, String IDUBIGEOOTRO,
            String NOMUBIGEODEP, String NOMUBIGEOPROV, String NOMUBIGEOSDIST,
            String NOMUBIGEOOTRO) {
        boolean tepers = false;
        try {
            base.conectar();
            conn = base.getconection();
            st = conn.prepareCall("{call SP_AGREGAUBIGEO(?,?,?,?,?,?,?,?,?)}");
            st.setString(1, IDUBIGEO.toUpperCase());
            st.setString(2, IDUBIGEODEP.toUpperCase());
            st.setString(3, IDUBIGEOPROV.toUpperCase());
            st.setString(4, IDUBIGEODIST.toUpperCase());
            st.setString(5, IDUBIGEOOTRO.toUpperCase());
            st.setString(6, NOMUBIGEODEP.toUpperCase());
            st.setString(7, NOMUBIGEOPROV.toUpperCase());
            st.setString(8, NOMUBIGEOSDIST.toUpperCase());
            st.setString(9, NOMUBIGEOOTRO.toUpperCase());
            int nac = st.executeUpdate();
            if (nac >= 1) {
                tepers = true;
            }
            st.close();
            conn.close();
            base.cerrarBD();
        } catch (SQLException v) {
            System.err.println("Error al registrar Ubigeo(*" + v.getMessage() + "*)");
        }
        return tepers;
    }
    public boolean InsertaPersona(
            String COD_PERSONA,String PRIM_APE_PERS, String SEG_APE_PERS, 
            String APE_CASADA, String PRE_NOM_PERS, String IDUBIGEO_DOMICI,
            String COD_DIR, String DIR_PERS, String NRO_DIR, 
            String GEN_PERS, String FOTO_PERSONA, String TELEF_1, 
            String TELEF_2, String EST_CIVIL_PERS, String COD_NACIONALIDAD,
            String IDUBIGEO, String COD_ESTADO_PERS, String COD_CARGO) {
        boolean pers = false;
        try {
            base.conectar();
            conn = base.getconection();
            st = conn.prepareCall("{call SP_REGUSUARIO (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}");
            st.setString(1, COD_PERSONA);
            st.setString(2, PRIM_APE_PERS.toUpperCase());
            st.setString(3, SEG_APE_PERS.toUpperCase());
            st.setString(4, APE_CASADA.toUpperCase());
            st.setString(5, PRE_NOM_PERS.toUpperCase());
            st.setString(6, IDUBIGEO_DOMICI);
            st.setString(7, COD_DIR.toUpperCase());
            st.setString(8, DIR_PERS.toUpperCase());
            st.setString(9, NRO_DIR);
            st.setString(10, GEN_PERS.toUpperCase());
            st.setString(11, FOTO_PERSONA);
            st.setString(12, TELEF_1);
            st.setString(13, TELEF_2);
            st.setString(14, EST_CIVIL_PERS.toUpperCase());
            st.setString(15, COD_NACIONALIDAD);
            st.setString(16, IDUBIGEO);
            st.setString(17, COD_ESTADO_PERS);
            st.setString(18, COD_CARGO);
            int p = st.executeUpdate();
            if (p >= 1) {
                pers = true;
            }
            st.close();
            conn.close();
            base.cerrarBD();
        } catch (SQLException pe) {
            System.err.println("Error al registrar la Persona(*" + pe.getMessage() + "*)");
        }
        return pers;
    }   
    public boolean InsertaDefuncion(String NRO_ACTA_PERS, String NRO_ACTA_CDEF, String FECHA_REG_DEF,
            String IDUBIGEO, String COD_LUGAR_OCURR, String FECHA_DEF, String HORA_DEF, String DNI_MADRE,
            String DNI_PADRE, String DNI_DECLARANTE, String DNI_PERS_REG, String COD_ESTADO, 
            String COD_T_DOC, String OBSERVACIONES, String RUTA_ACTA_DEF) {
        boolean regDef= false;
        try {
            base.conectar();
            conn = base.getconection();
            
            ps = conn.prepareStatement("insert into TB_DEFUNCION values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
            // st = conn.prepareCall("{call SP_FALTA-CREAR-PROCEDIMIENTO(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}");
            ps.setString(1, NRO_ACTA_PERS.toUpperCase());
            ps.setString(2, NRO_ACTA_CDEF.toUpperCase());
            ps.setString(3, FECHA_REG_DEF.toUpperCase());
            ps.setString(4, IDUBIGEO.toUpperCase());
            ps.setString(5, COD_LUGAR_OCURR.toUpperCase());
            ps.setString(6, FECHA_DEF.toUpperCase());
            ps.setString(7, HORA_DEF.toUpperCase());
            ps.setString(8, DNI_MADRE.toUpperCase());
            ps.setString(9, DNI_PADRE.toUpperCase());
            ps.setString(10, DNI_DECLARANTE.toUpperCase());
            ps.setString(11, DNI_PERS_REG.toUpperCase());
            ps.setString(12, COD_ESTADO.toUpperCase());
            ps.setString(13, COD_T_DOC.toUpperCase());
            ps.setString(14, OBSERVACIONES.toUpperCase());
            ps.setString(15, RUTA_ACTA_DEF.toUpperCase());
            int r = ps.executeUpdate();
            if (r > 0) {
                regDef = true;
            }
            ps.close();
            conn.close();
            base.cerrarBD();
        } catch (SQLException de) {
            System.err.println("Error al registrar Defuncion(*" + de.getMessage() + "*)");
        }
        return regDef;
    }
    
    public boolean InsertaMatrimonio(String NRO_ACTA_PERS, String NRO_ACTA_MAT, String FECHA_REG_MAT,
            String IDUBIGEO_MAT, String DNI_PERS_1, String DNI_PERS_2, String DNI_TESTIGO_1, String DNI_TESTIGO_2, 
            String DNI_REGISTRADOR, String COD_ESTADO, String IDUBIGEO, String COD_NACIONALIDAD, String RUTA_ACTA_MAT) 
    {
        boolean regDef= false;
        try {
            base.conectar();
            conn = base.getconection();
            
            ps = conn.prepareStatement("insert into TB_MATRIMONIO values(?,?,?,?,?,?,?,?,?,?,?,?,?)");
            // st = conn.prepareCall("{call SP_FALTA-CREAR-PROCEDIMIENTO(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}");
            ps.setString(1, NRO_ACTA_PERS.toUpperCase());
            ps.setString(2, NRO_ACTA_MAT.toUpperCase());
            ps.setString(3, FECHA_REG_MAT.toUpperCase());
            ps.setString(4, IDUBIGEO_MAT.toUpperCase());
            ps.setString(5, DNI_PERS_1.toUpperCase());
            ps.setString(6, DNI_PERS_2.toUpperCase());
            ps.setString(7, DNI_TESTIGO_1.toUpperCase());
            ps.setString(8, DNI_TESTIGO_2.toUpperCase());
            ps.setString(9, DNI_REGISTRADOR.toUpperCase());
            ps.setString(10, COD_ESTADO.toUpperCase());
            ps.setString(11, IDUBIGEO.toUpperCase());
            ps.setString(12, COD_NACIONALIDAD.toUpperCase());
            ps.setString(13, RUTA_ACTA_MAT.toUpperCase());
            
            int r = ps.executeUpdate();
            if (r > 0) {
                regDef = true;
            }
            ps.close();
            conn.close();
            base.cerrarBD();
        } catch (SQLException de) {
            System.err.println("Error al registrar Defuncion(*" + de.getMessage() + "*)");
        }
        return regDef;
    }
//-------------------------------------------------------------------
    public boolean InsertaLugarOcurrencia(String COD_LUGAR_OCURRENCIA, String NOM_CEN_LUG_OCU) {
        boolean locu = false;
        try {
            base.conectar();
            conn = base.getconection();
            st = conn.prepareCall("{call SP_AGREGALUGAROCURRENCIA(?,?)}");
            st.setString(1, COD_LUGAR_OCURRENCIA);
            st.setString(2, NOM_CEN_LUG_OCU.toUpperCase());
            int lo = st.executeUpdate();
            if (lo > 0) {
                locu = true;
            }
            st.close();
            conn.close();
            base.cerrarBD();
        } catch (SQLException v) {
            System.err.println("Error al registrar Lugar de Ocurrencia(*" + v.getMessage() + "*)");
        }
        return locu;
    }
    public boolean InsertaNacimiento(String COD_PERSONA,
   String CUI_PERS, String NRO_ACTA_PERS, 
   String NRO_LIBRO, String FECHA_REG_ACTA,
   String IDUBIGEONAC, String IDUBIGEOREG, 
   String HORA_NACI, String MINUTO_NACI,
   String SEGUN_NACI, String FECHA_NACIMIENTO, 
   String COD_TIPO_DOCM, String DNI_MADRE, 
   String EDAD_MADRE, String COD_NACIONALIDADM, 
   String NATURALMADRE, String COD_T_DOCP, 
   String DNI_PADRE, String EDAD_PADRE, 
   String COD_NACIONALIDADP, String NATURALPADRE, 
   String DNI_DECLARANTE_1, String COD_VINCULO1, 
   String T_DOC_D1, String DNI_DECLARANTE_2, 
   String COD_VINCULO2, String T_DOC_D2, 
   String DNI_REGISTRADOR, String COD_LUGAR_OCURR, 
   String COD_ESTADO, String OBSERVACIONES, 
   String RUTA_ACTA_NAC,String RUTA_ACTA_NAC2)
    {
        boolean regNaci = false;
        try {
            base.conectar();
            conn = base.getconection();
            st = conn.prepareCall("{call SP_AGREGAACTANACIMIENTO (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}");
st.setString(1,COD_PERSONA);
st.setString(2, CUI_PERS.trim());st.setString(3, NRO_ACTA_PERS.trim());st.setString(4, NRO_LIBRO.trim());
st.setString(5, FECHA_REG_ACTA.trim());st.setString(6, IDUBIGEONAC);st.setString(7, IDUBIGEOREG);
st.setString(8, HORA_NACI.trim());st.setString(9, MINUTO_NACI.trim());st.setString(10, SEGUN_NACI.trim());
st.setString(11, FECHA_NACIMIENTO.trim());st.setString(12, COD_TIPO_DOCM.trim());st.setString(13, DNI_MADRE.trim());
st.setString(14, EDAD_MADRE.trim());st.setString(15, COD_NACIONALIDADM.trim());st.setString(16, NATURALMADRE.toUpperCase());
st.setString(17, COD_T_DOCP.trim());st.setString(18, DNI_PADRE.trim());st.setString(19, EDAD_PADRE.trim());
st.setString(20, COD_NACIONALIDADP.trim());st.setString(21, NATURALPADRE.toUpperCase());st.setString(22, DNI_DECLARANTE_1.trim());
st.setString(23, COD_VINCULO1.trim());st.setString(24, T_DOC_D1.trim());st.setString(25, DNI_DECLARANTE_2.trim());
st.setString(26, COD_VINCULO2.trim());st.setString(27, T_DOC_D2.trim());st.setString(28, DNI_REGISTRADOR.trim());
st.setString(29, COD_LUGAR_OCURR.trim());st.setString(30, COD_ESTADO.toUpperCase());st.setString(31, OBSERVACIONES.toUpperCase());
st.setString(32, RUTA_ACTA_NAC.trim()); st.setString(33, RUTA_ACTA_NAC2);
            int r = st.executeUpdate();
            if (r >0) {
                regNaci = true;
            }
            st.close();
            conn.close();
            base.cerrarBD();
        } catch (SQLException na) {
            System.err.println("Error al registrar Nacimiento(*" + na.getMessage() + "*)");
        }
        return regNaci;
    }
}